1. Field of the Invention
Embodiments of the present invention relate generally to computer graphics, and, more specifically, to systems and methods for portable animation rigs.
2. Description of the Related Art
Prior art software graphics systems implement modeling, animation, and rendering functions that enable users to create three-dimensional (3D) models, animate the models, and render the models in a 3D graphics scene. Modeling typically involves creating geometric structures that represent a target 3D object. Modeling tools facilitate creating arbitrary shapes that may be moved or deformed according to a specific movement regime. Animation typically involves creating the movement regime for the target 3D object. The movement regime defines relative motion of geometry comprising the target 3D object and may also involve motion within a given graphics scene. For example, the movement regime may define how a humanoid model should implement movement for individual limbs, head movement, and composite movement activities such as walking or laughing. The movement regime may involve certain complex, algorithmically-defined rules governing movement, interdependencies of movement, and constraints placed on the movement.
Animation tools facilitate creating an animation “rig” used to define the movement regime of a target 3D object. The animation rig may include certain standard attributes as well as definitions of complex and algorithmically-defined behavior. Animation tools also facilitate creating animation sequences for the target 3D object based on the movement regime created for the target 3D object. An animation sequence includes a specific set of actions and motion for the target 3D object. One exemplary animation sequence comprises a humanoid model walking. Such an animation sequence includes specific motion curves for each geometric component of the humanoid model. The motion curves are generated in conjunction with an associated animation rig. Once the motion curves are generated for a specific animation sequence, the animation rig is no longer needed to reconstruct that specific sequence. However, generating a different animation sequence would require use of the animation rig to compute respective motion curves.
Rendering typically involves creating one or more frames of image data based on the target 3D object in a particular state of animation. The state of animation is substantially defined by motion curves for the target 3D object. Rendering tools facilitate rendering plural frames of image data corresponding to a particular animation sequence comprising motion curves for one or more target 3D objects.
Modeling, animation, and rendering operations comprise a complete graphics pipeline. In common usage models, different applications are used to perform these operations. For example, one application may implement a modeling tool that is used to create a specific 3D model, a second application may be used to create animation sequences from the 3D model, and a third application may be used to render the animation sequences. In one scenario, animation sequences are rendered to create clips of fixed content, such as portions of a movie. In another scenario, the animation sequences are rendered in real time as part of an interactive application, such as a game.
A 3D model may be exported from a modeling tool and imported into an animation tool via a standard file format that defines a standard representation of a 3D model. The 3D model comprises a geometric description of an object and may include additional attributes, such as texture placement information. Similarly, an animation sequence may be exported from an animation tool and imported by a rendering tool. The animation sequence includes motion curves that define animated movement for the object. However, an animation rig that provides animation setup and behavior within one tool may not have an analogous representation in another tool. As a result, certain animation information is lost when transporting a model or animation sequence from one application to another application. Such loss is unavoidable in the standard representation regime because new modeling features may be advantageously added to one application, but not another application.
As the foregoing illustrates, there is a need in the art for an improved technique for transporting an animation setup from one application to another.